package main

import "fmt"

//一个空接口，根据go的默认特性，任何结构都默认实现该接口
type interface_empty interface {

}

type interface_i struct {
	Name string
}

func main() {
	i := interface_i{Name:"string"}
	interface_what(i)
}

func interface_what(i interface{}){
	//通过这样让go语言自动判断接口是哪一个
	switch v := i.(type) {
	case interface_i:
		fmt.Println("i", v.Name)
	default:
		fmt.Println("hahah")
	}
}